import { takeEvery, put, delay } from 'redux-saga/effects'
import { increment } from '../actions/conter.action'

import { INCREMENT_ASYNC } from '../const/conter.const'
// takeEvery 用来接收 action
// put 用来触发 action
// dalay 延迟
function* increment_async_fn(action) {
	// console.log(action) payload : 5 type : increment_async
	let { payload } = action
	yield delay(2000) //延迟两秒
	yield put(increment(payload)) // 触发同步increment
}

// 要求默认导出genertor 函数
export default function* counterSaga() {
	// 接收action
	// 第一个参数为你要接收的action方法的类型字符串
	// 第二个参数为你要执行的方法名称
	yield takeEvery(INCREMENT_ASYNC, increment_async_fn)
}
